#pragma once

#include <MCFExeRoot/Code/MCFExeRoot.hpp>
#include <MCFExeRoot/Code/AbstractExeRootClass.hpp>
#include "../Resources/Resource.h"
#include "SDCardClass.hpp"
#include "WorkerThreadClass.hpp"

class VM2Class sealed : public MCF::AbstractExeRootClass {
public:
	static const TCHAR APPLICATION_NAME[];
public:
	static VM2Class *GetCurrentExeRootPtr();
private:
	SDCardClass _m_SDCard;

	WorkerThreadClass _m_WorkerThread;
protected:
	virtual int _MCFMain(std::size_t uArgCount, const TCHAR *const *lppArgVector, int nCmdShow) override;
public:
	VM2Class();
	virtual ~VM2Class();
private:
	bool _HasAdminPriv() const;
};
